'use strict'

const { Products } = require('../model')

let product = [
    {
        id: 1,
        name: '春分',
        date: '3月20日'
    },
    {
        id: 2,
        name: '夏至',
        date: '6月21日'
    },
    {
        id: 3,
        name: '秋分',
        date: '9月23日'
    },
    {
        id: 4,
        name: '冬至',
        date: '12月22日'
    },
]


let fn_product = async (ctx, next) => {
    // let keyword = ctx.request.query.keyword || ''
    // if(keyword){
    //     let list = await Products.findAll({
    //         where:{
    //             [Op.or]:[
    //                 {id:keyword},
    //                 {name:keyword},
    //                 {date:keyword},
    //             ]
    //         }
    //     })
    //     ctx.body = list
    //     // ctx.body = product.filter(item=>{
    //     //     return item.id == keyword || item.name == keyword || item.date == keyword
    //     // })
    // }else{
    //     let list = await Products.findAll();
    //     console.log(list);
    //     ctx.body = list
    // }
    ctx.body = product
}

let fn_product_id = (ctx, next) => {
    
}

// 添加
let fn_post = (ctx, next) => {
    // 获取请求前端的值
    let obj = ctx.request.body
    console.log(obj);
    // 获取新增数据id的值
    obj.id = product[product.length - 1].id + 1
    // 向product添加数据
    product.push(obj)
    // 输出 product ,看是否添加数据成功
    console.log(product);
    // 显示页面数据
    ctx.body = product
}

// 编辑
let fn_put = (ctx, next) => {
    let obj = ctx.request.body
    // product = product.map(item => {
    //     if (item.id == obj.id) {
    //         item = obj
    //     }
    //     return item
    // })
    product.forEach(item => {
        if (item.id == obj.id) {
            item.name = obj.name
            item.date = obj.date
        }
        console.log(item);
    });
    ctx.body = product
}

// 删除 
let fn_delete = (ctx, next) => {
    let id = ctx.request.params.id
    console.log(id);
    //  params --->> 通过指定id /:id get请求、delete请求
    //  query --->> 通过？方式 ?id=2 get请求,
    //  body  --->> post 和 put请求
    let newArr1 = product.filter(item => {
        return id != item.id
    })

    product = newArr1
    ctx.body = product
}


module.exports = {
    'get /product': fn_product,  // 用于产品列表页面，返回列表信息
    'get /product/:id': fn_product_id,  //用于产品详细页面，返回某个id产品的详细信息
    'post /product': fn_post,  //用于产品的新增，增加一条数据
    'put /product': fn_put, // 用于产品修改，修改指定id的产品数据
    'delete /product/:id': fn_delete,// 用于删除指定id的产品信息
}